package src.data.daos;

import java.util.HashSet;
import java.util.Set;

import org.hibernate.Criteria;
import org.hibernate.criterion.Restrictions;

import src.data.hbt.HibernateProvider;
import src.domain.Cliente;

public class ClienteDAO {
	private HibernateProvider provider;

	private static ClienteDAO instance = null;

	public static ClienteDAO getInstance() {
		if (instance == null)
			instance = new ClienteDAO();
		return instance;
	}
	
	private ClienteDAO() {
		this.provider = HibernateProvider.getInstance();

	}
	
	
	public Cliente getByID(Cliente Cliente){
		Criteria criteria = provider.getSession().createCriteria(Cliente.class).add(Restrictions.like("clienteId", Cliente.getClienteId()));
		return (Cliente) criteria.uniqueResult();	
	}
	
	@SuppressWarnings("unchecked")
	public Set<Cliente> getAll() {
		Criteria criteria = provider.getSession().createCriteria(Cliente.class);
		Set<Cliente> set = new HashSet<Cliente>();
		set.addAll(criteria.list());
		
		return set;

	}

	public void save(Cliente Cliente) {
		provider.getSession().save(Cliente);
		
	}

	public void saveOrUpdate(Cliente Cliente) {
		
		provider.getSession().saveOrUpdate(Cliente);
		
	}

	public void update(Cliente Cliente) {	
		
		provider.getSession().update(Cliente);		
	}

	public void delete(Cliente Cliente) {
		provider.getSession().delete(Cliente);
	}

}
